package com.wltjack.common.exception.code;

/**
 * @ClassName SysErrorEnums
 * @Description 系统错误码
 * @Author kangliang
 * @Date 2021/03/02 21:20
 * @Version 1.0
 */
public enum SysErrorEnums implements ErrorCode {

    /**
     * 0:操作成功
     */
    SUCCESS(0, "操作成功!"),
    /**
     * 1:操作失败
     */
    FAIL(1, "操作失败!"),
    /**
     * 2:数据拷贝失败
     */
    DATA_COPY_FAIL(2, "数据拷贝失败"),
    /**
     * 3:沒有该数据
     */
    DATA_NULL(3, "沒有该数据"),
    /**
     * 4:参数错误
     */
    PARM_NULL(4, "参数错误"),
    /**
     * 5:调用第三接口超时
     */
    READ_TIME_OUT(5, "调用第三接口超时"),
    /**
     * 5:调用第三接口错误
     */
    INVOKE_ERROR(6, "调用第三接口失败"),
    /**
     * 7:调用Azkaban服务接口失败
     */
    INVOKE_AZKABAN_ERROR(7, "调用Azkaban服务接口失败!"),
    /**
     * 400:请求错误
     */
    REQ_ERROR(400, "请求错误!"),
    /**
     * 500:内部服务错误
     */
    SERVICE_ERROR(500, "内部服务错误!"),
    /**
     * 501:对象复制错误
     */
    OBJECT_COPY_ERROR(501, "对象复制错误!"),
    /**
     * 401:授权失败或超时,请登录访问
     */
    UNAUTHORIZED(401, "授权失败或超时,请登录访问!"),
    /**
     * 403:Forbidden
     */
    FORBIDDEN(403, "Forbidden"),
    /**
     * 408:请求超时
     */
    TIMEOUT(408, "请求超时!"),
    /**
     * 406:请求参数错误
     */
    REQ_PARAMS_ERROR(406, "请求参数错误!"),
    /**
     * 420:您已经在另一台手机登录
     */
    ONE_LOGIN(420, "您已经在另一台手机登录"),
    /**
     * 421:提交的数据中包含敏感字符，请重试
     */
    SENS_WORD(421, "提交的数据中包含敏感字符，请重试！"),
    /**
     * 800:该服务已暂时停用
     */
    SERVICE_STOP(800, "该服务已暂时停用！"),
    /**
     * 422:无效请求,校验错误
     */
    NO_AUTH_REQUEST(422, "无效请求,校验错误"),
    /**
     * 899:feign注册，传递错误
     */
    FEIGN_ERR(899, "feign注册，传递错误"),
    /**
     * 1024:登录会话已过期，请重新登录
     */
    SESSION_TIME_OUT(1024, "登录会话已过期，请重新登录"),
    /**
     * 3001:文件路径为空
     */
    FILE_PATH_ISNULL(3001, "文件路径为空"),
    /**
     * 3002:文件为空
     */
    FILE_ISNULL(3002, "文件为空"),
    /**
     * 3003:文件上传失败
     */
    FILE_UPLOAD_FAILED(3003, "文件上传失败"),
    /**
     * 3004:文件不存在
     */
    FILE_NOT_EXIST(3004, "文件不存在"),
    /**
     * 3005:文件下载失败
     */
    FILE_DOWNLOAD_FAILED(3005, "文件下载失败"),
    /**
     * 3006:删除文件失败
     */
    FILE_DELETE_FAILED(3006, "删除文件失败"),
    /**
     * 3007:文件服务器连接失败
     */
    FILE_SERVER_CONNECTION_FAILED(3007, "文件服务器连接失败"),
    /**
     * 3008:文件超过大小
     */
    FILE_OUT_SIZE(3008, "文件超过大小"),
    /**
     * 99:实体不能重复添加
     */
    ENTITY_IS_EXISTS(99, "实体不能重复添加"),

    /**
     * 15:实体不能重复添加
     */
    ACCOUNT_IS_EXISTS(15, "账号已经存在");

    private Integer baseCode = 30;
    private Integer code;
    private String message;
    private Integer maxCompareCode = 1000;

    SysErrorEnums(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public int getCode() {
        if (this.code < maxCompareCode) {
            return baseCode * maxCompareCode + this.code;
        } else {
            return this.code;
        }
    }

    @Override
    public String getMessage() {
        return this.message;
    }

    @Override
    public void setMessage(String msg) {
        this.message = msg;
    }
}
